from tkinter import *
from tkinter import ttk


class Sketchpad(Canvas):
    """画板类"""
    def __init__(self, parent, **kwargs):
        super().__init__(parent, **kwargs)
        # 绑定鼠标左键，触发保存位置函数
        self.bind("<Button-1>", self.save_posn)
        # 绑定鼠标移动，触发画线方法
        self.bind("<B1-Motion>", self.add_line)

    def save_posn(self, event):
        """保存位置函数"""
        # 定义lastx lasty  为哪个点
        self.lastx, self.lasty = event.x, event.y

    def add_line(self, event):
        """画线方法"""
        # 画线
        self.create_line((self.lastx, self.lasty, event.x, event.y))
        # 保存位置
        self.save_posn(event)


# 创建主窗口
root = Tk()
# 配置列0 权重是1
root.columnconfigure(0, weight=1)
# 配置行- 权重是1
root.rowconfigure(0, weight=1)

# 创建画板类
sketch = Sketchpad(root)
# 将sketch对象放到列0行0位置上，并向四周拉伸
sketch.grid(column=0, row=0, sticky=(N, W, E, S))

root.mainloop()